abstract data structure - array - linked list - stack - queue - binary tree / binary search tree

recursion: a function that calls itself; with a base case

binary tree traversal: preorder (one hit), inorder (two hits), postorder (three hits)

use postorder to restore any binary tree

linked list: has a head field to point to the first element or null; consists of node which contains value and pointer to the next node; the last node’s next pointer points to null

dynamic vs static data structure: - dynamic data structure allocates memory at runtime; static at compile time - dynamic data structure can easily extend length; static cannot - dynamic data structure uses more memory for storing the pointers; static does not